草庐IT

Android AsyncTask 内存泄漏

全部标签

windows - 在 Windows 7 中更改内存和 CPU 使用率

我想用低性能硬件的Windows机器进行测试。不幸的是我有一台更高端的机器。有没有办法限制CPU和RAM内存使用的性能?我可以通过任何其他软件来完成吗?还是可以通过Windows操作系统本身来完成? 最佳答案 您可以使用VMWare来限制内存。您将无法限制虚拟机中的处理器速度,但您只能为其分配1个内核。 关于windows-在Windows7中更改内存和CPU使用率,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

c++ - 我的内存在哪里?

我有一个简单的应用程序,它使用ffmpeg进行解码。通常它工作得很好。但是,当我尝试播放某个文件时,它开始占用我的内存。即使我释放解码器使用的所有资源,内存也不会被释放。我已经尝试运行内存泄漏检测器(英特尔并行检查器),但它没有检测到泄漏,因为内存可能在关机期间被释放。我的问题是如何查看在运行时分配的内存位置和数量?编辑:添加了windows标签。 最佳答案 尝试使用带有选项--leak-check=full的valgrind来查看是否有内存泄漏。http://valgrind.org/编辑:现在我看到目标平台是windows,这个

windows - 在 Windows 上,内存中的数据是否可以跨虚拟内存页面连续存在?

在Windows上,内存中的数据是否可以跨虚拟内存页连续存在?例如,字符串“hello”,其中“he”在一页上,“llo”在下一页。任何超过最大页面大小的大数据block(如果可能)。 最佳答案 当然。内存页面可能不会连续出现在物理内存中,但通过虚拟内存的魔力,您的程序不会变得更聪明。 关于windows-在Windows上,内存中的数据是否可以跨虚拟内存页面连续存在?,我们在StackOverflow上找到一个类似的问题: https://stackover

c++ - 修改编译后的可执行内存分配

我有一个无法访问源代码的已编译可执行文件。每次运行时,都会将一个变量分配给内存地址0x7B008C。我试图让它每次都使用不同的地址而不是那个地址。它不必是动态的,因为我的目的只是破坏当前存在的修改源程序行为的应用程序。所以我的问题是,在不破坏程序行为的情况下实现这一目标的最简单方法是什么? 最佳答案 一般来说,你不能。编译可执行文件时,链接器在机器代码中将对静态变量的引用解析为变量的原始地址。没有迹象表明存在这样的引用,并且由于x86机器代码的性质,以后很难找到这些引用(您不一定能清楚地知道指令从哪里开始)。此外,您不知道那是否只是

c - 在 win32/C/C++ 中共享内存和 IPC 的最快进程技术

我正在编写一个导出标准化接口(interface)(VST)并由外部应用程序托管的实时库。库必须发布一个表,该表可以被同一进程中的任何线程查看(如果它知道在哪里查看)——明确地说,这个表必须可以被进程空间中的所有dll查看——如果他们知道在哪里查看看。访问表必须很快。虚拟内存似乎有点矫枉过正,我考虑过使用窗口句柄(现在仍然可以)来消息泵,但我更喜欢一种更快的方法,如果有的话。此外,PE中的共享数据段是我希望尽可能避免的。我想我几乎宁愿使用窗口句柄。我目前不关心同步,事后我可以处理。我只是想要一些关于在进程空间内发布表的最快技术的建议。 最佳答案

c# - 进程被杀死后可能导致内存泄漏?

我正在编写一个生成并终止Chrome浏览器的应用程序。虽然我以编程方式终止进程(与通过Windows任务管理器终止进程的效果相同),但有人建议这也可能导致内存泄漏——即来自内核资源等元素,这些元素未与原始进程正确关联.在进程被终止后,应用程序是否可能泄漏内存或以其他方式拥有不可回收的内存? 最佳答案 这可能会发生,但当它发生时,它永远不会是程序中的错误。它总是由Windows内核代码或某些内核驱动程序中的错误/错误引起。此外,您甚至不太可能在Windows的标准安装上遇到此类行为。 关于

.net - 禁用交换(页面文件)以确保所有内容都在内存中

我有几个需要实际内存的应用程序,它们消耗了大量的内存。一种解决方案是将应用程序内的每一block内存都锁定(VirtualLock),但这需要很多时间才能正确执行,因为应用程序是在.NET中。所以,我的问题是,禁用交换文件(我的机器上有足够的RAM)是否是确保所有内容都真正在内存中的有效策略?更新:让我重复一遍——我知道这可能是一种非常肮脏的做事方式,并且可能会破坏整个操作系统的运行,但是,我会承担全部责任并应对后果,只想知道我可能会做什么遇到问题。以下是其他StackExchange用户的看法:https://serverfault.com/questions/23621/any-b

c++ - 检测 C++ Windows 应用程序中的内存泄漏

我有一个C++Windows应用程序,它有一些内存泄漏问题。是否可以使用NTSD分析转储中的内存泄漏?如果是这样,请指导我该怎么做?我还听说我们可以使用用户模式转储来完成。我不太熟悉在Windows中查找泄漏。在Linux中使用Valgrind非常容易。有没有其他更好的选择来检查这个? 最佳答案 seehere有关视觉检漏仪的详细信息。我在Windows上使用过它。您在应用程序中所做的就是#include您将在调试程序时看到有关在终端中检测到泄漏的报告,如下所示:----------Block1199at0x04BE1058:136

c++ - std::map 中值的内存分配

我在学校工作中获得了一些C++经验。我了解到,除其他外,对象应该作为指针存储在容器(vector、map等)中。主要原因是我们需要使用new运算符以及复制构造函数,以便在对象的堆(也称为动态内存)上创建拷贝。此方法还需要定义一个析构函数。然而,从我从那以后读到的内容来看,STL容器似乎已经将它们包含的值存储在堆上。因此,如果我要将我的对象存储为值,无论如何都会在堆上创建一个拷贝(使用复制构造函数),并且不需要定义析构函数。总而言之,无论如何都会在堆上创建一个拷贝???此外,如果(真),那么我能想到的使用指针存储对象的唯一其他原因是减轻复制容器的资源需求,因为指针比整个对象更容易复制。但

windows - 如何在 Windows 中直接分配显卡内存?

我需要在Windows项目中的视频卡内存中分配位图。因为该项目使用了除GDI之外的其他二维库,所以CreateCompatibleBitmap没有用。然后我想出了一个使用DX的方法,这是我的代码:if(FAILED(g_D3DDevice->CreateVertexBuffer(10240*1024,0,D3DFVF_VERTEX,D3DPOOL_DEFAULT,&g_VertexBuffer,NULL)))returnfalse;//Fillthevertexbuffer.void*ptr;if(FAILED(g_VertexBuffer->Lock(0,1024*10240,(vo